Edit_sector:
        call Disp_sector	;����� Sector �� �����
        mov [es:B],byte 0
	mov [es:Nt],byte 0
	call Set_cursor		;������������� �������
.C:	call Read_byte          ;�������� ������� �������
	cmp al,0h               ;��� ����������� �������?
	jne .M1                 ; ���
	cmp ah,3Ch		;��� F2?
	jne .M2			; ���
	call Write_sector
	jmp .Exit
.M2:	cmp ah,3Eh		;��� F4?
	je .Exit		; ��
	call Edit_command       ;���������� �������
	jmp .C
.M1:	cmp ax,011Bh		;ESC - �������?
	je .Exit		; ��
	call Test_digit_hex	;��� �����. �����
	jc .C                   ; ���
	call Write_digit_sector	;�����. ����� -> Sector
	jmp .C  
.Exit:	call Set_cursor         ;������������� �������
	call Disp_sector        ;����� Sector �� �����
	ret
;
; �������� �����. �����
; ����: AL - ASCII ���
; �����: DL - �����
;	 CF 1 - ���, 0 - ��
Test_digit_hex:    
	cmp al,30h
	jb .M
	cmp al,39h
	ja .N
	mov dl,al		
	sub dl,30h
	clc
	jmp .Exit
.N:	cmp al,41h
	jb .M
	cmp al,46h
	ja .M
	mov dl,al		
	sub dl,37h
	clc
	jmp .Exit
.M:	stc
.Exit:	ret

Write_digit_sector:
	push ax
	push bx
	xor ax,ax
	xor bx,bx
	mov bl,[es:B]
	mov al,[es:Sector+bx]
        cmp [es:Nt],byte 0		;Nt = 0
	je .M			; ��
	and al,0f0h
	or al,dl
	jmp .Exit
.M:	and al,0fh
	shl dl,4
	or al,dl
.Exit:	mov [es:Sector+bx],al
	call Set_cursor		;������������� �������
	call Disp_sector        ;����� Sector �� �����
	call Cur_right 
	pop bx
	pop ax
	ret

Edit_command:
		push bx
		pushf
		mov bx,.Edit_Table	;BX <- adres tablici
.M1:		cmp byte[bx],0ffh	;Konec tablici?
		je .Exit		;Da, koda net v tablice
		cmp ah,[bx]		;Eto vhod v tablicu?
		je .Dispatch		;Da, vipolnit komandu
		add bx,3		;Net, perehod k
		clc			; sleduyschemu
		jmp .M2			; elementu tablici
.Dispatch: 	inc bx			;Adres proceduri
		call [bx]		;Vizov proceduri
.Exit:		stc			; CF <- 1
.M2:		jnc .M1			;Povtorenie dly novogo elementa tablici
		popf
		pop bx
		ret
; Tablica soderjit skan-kodi upravlyuschih klavish i adresa
; procedur, vipolnyuschih sootvetstvuyuschie komandi
.Edit_Table	db	4dh		;<Right>
		dw	Cur_right
		db	4bh		;<Left>
		dw	Cur_left
		db	48h		;<Top>
		dw	Cur_top
		db	50h		;<Down>
		dw	Cur_down
		db	0ffh		;Konec tablici


		